package com.wu.mvp.utils.widget;

import android.content.Context;
import android.support.annotation.ArrayRes;
import android.support.annotation.NonNull;
import android.support.annotation.StringRes;

import com.afollestad.materialdialogs.MaterialDialog;
import com.wu.mvp.R;

public class DialogUtil {

    /**
     * 提示框
     * @param context
     * @param content 提示内容
     * @return
     */
    public static MaterialDialog showHintDialog(Context context, @StringRes int content) {
        return new MaterialDialog.Builder(context)
                .title(R.string.dialog_hint)
                .content(content)
                .positiveText(R.string.dialog_confirm)
                .negativeText(R.string.dialog_cancel)
                .show();
    }

    /**
     * 确认框
     * @param context
     * @param title 标题
     * @param content 内容
     * @param callback 确认回调
     * @return
     */
    public static MaterialDialog showConfirmDialog(Context context, @StringRes int title, @StringRes int content,
                                                   MaterialDialog.SingleButtonCallback callback) {
        return new MaterialDialog.Builder(context)
                .title(title)
                .content(content)
                .onPositive(callback)
                .positiveText(R.string.dialog_confirm)
                .negativeText(R.string.dialog_cancel)
                .show();
    }

    /**
     * 列表框
     * @param context
     * @param title 标题
     * @param array 列表数组res
     * @param callback 列表选择回调
     * @return
     */
    public static MaterialDialog showListDialog(Context context, @StringRes int title, @ArrayRes int array,
                                                MaterialDialog.ListCallback callback) {
        return new MaterialDialog.Builder(context)
                .title(title)
                .items(array)
                .itemsCallback(callback)
                .show();
    }


    /**
     * 输入框
     * @param context
     * @param title 标题
     * @param content 内容
     * @param hint 提示
     * @param preFill 预输入内容
     * @param callback 确认回调
     * @return
     */
    public static MaterialDialog showInputDialog(Context context, @StringRes int title, @StringRes int content,
                                                 @StringRes int hint, String preFill, MaterialDialog.SingleButtonCallback callback) {
        return new MaterialDialog.Builder(context)
                .title(title)
                .content(content)
                .input(context.getString(hint), preFill, new MaterialDialog.InputCallback() {
                    @Override
                    public void onInput(@NonNull MaterialDialog dialog, CharSequence input) {

                    }
                })
                .positiveText(R.string.dialog_confirm)
                .onPositive(callback)
                .show();

    }
}
